home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 227_01 / frktal.c < prev    next >
Text File  |  1988-02-07  |  1KB  |  52 lines

  1. /**
  2. *                           F R K T A L . C
  3. *                           ===============
  4. **/
  5.  
  6. #include <stdio.h>
  7.  
  8. #include "graphics.h"
  9.  
  10. #define HOR MAX_X
  11. #define VER MAX_Y
  12.  
  13. static float x1 = -.25 /*-0.75*/;  /* Min. x */
  14. static float x9 = 2.;     /* Max. x */
  15. static float y1 = -0.5;    /* Min. y */
  16. static float y9 = 1.;     /* Max. y */
  17. static float zx, zy;
  18. static float x, y;        /* Laufvariablen */
  19. static float xk, yk, xk1, yk1;
  20. static int k, k1;
  21. static int fa;            /* Farbe des Pixel */
  22. static int s = 1000;
  23. static int fs = 2;        /* Farbabstufung */
  24. static int tiefe = 50;    /* Berechnungstiefe */
  25.  
  26. void main()
  27. {
  28. setmode(0xf);
  29. zx = (x9 - x1) / HOR;
  30. zy = (y9 - y1) / VER;
  31. for(x = x1 ; (x <= x9) /*&& !kbhit()*/ ; x += zx)
  32.   for(y = y1 ; (y <= y9) /*&& !kbhit() */; y += zy)
  33.     {
  34.     xk = x;
  35.     yk = y;
  36.     for(k = 0 ; k <= tiefe ; k++)
  37.       if((xk * xk + yk * yk) > s)
  38.         break;
  39.       else
  40.         {
  41.         xk1 = xk * xk - yk * yk -x;
  42.         yk1 = 2. * xk * yk -y;
  43.         xk = xk1;
  44.         yk = yk1;
  45.         }
  46.     setpixel((int) ((x - x1) / zx), (int) ((y - y1) / zy),
  47.              (k > tiefe) ? 0 : (((int) (k / fs)) + 1) % 3);
  48.     }
  49. getch();
  50. setmode(7);
  51. }
  52.